<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<title>git - the simple guide - no deep shit!</title>
    <link href='http://fonts.googleapis.com/css?family=Chelsea+Market' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/0/normalize.min.css" type="text/css">
	<link rel="stylesheet" href="css/style.css" type="text/css">
	<link relf="stylesheet" href="http://mmwebfonts.comquas.com/fonts/?font=Yunghkio" type="text/css">
	<style>
	/*
		fixed for myanmar font
	*/
	body {
		font-family:Georgia,"Masterpiece Uni Sans","Yunghkio",sans-serif;
	}
	h2 {
		font-family:'Chelsea Market',"Masterpiece Uni Sans","Yunghkio",Georgia, serif;
	}
	</style>
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-652147-13']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

      function recordOutboundLink(link, category, action) {
         _gat._getTrackerByName()._trackEvent(category, action);
         setTimeout('document.location = "' + link.href + '"', 100);
      }
    </script>
</head>
<body>
    <div class="scrollblock block-title">
        <h1>git - အရိုးအရှင်းဆုံး လမ်းညွှန်</h1>
        <p>အရိုးအရှင်းဆုံး လမ်းညွှန်ဖြစ်သည်။ ထို့ကြောင့် အသေးစိတ် မပါဝင်။ ;)</p>
        <a href="https://twitter.com/share" class="twitter-share-button" data-via="rogerdudler" data-size="large" data-url="http://rogerdudler.github.com/git-guide" data-related="rogerdudler" data-hashtags="git">Tweet</a>
        <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
        <p class="meta">
            ရေးသားသူ <a href="http://www.twitter.com/rogerdudler">Roger Dudler</a>

            (ဘာသာပြန်သူ <a href="http://www.twitter.com/saturngod">saturngod</a>)

            <br /> ကျေးဇူးတင်ခြင်း <a href="http://www.twitter.com/tfnico">@tfnico</a>, <a href="http://www.twitter.com/fhd">@fhd</a> နှင့် <a href="http://www.namics.com">Namics</a><br />
            ဒီလမ်းညွှန်ကို
            <a href="index.de.html">deutsch</a>,
            <a href="index.es.html">español</a>,
            <a href="index.fr.html">français</a>,
            <a href="index.id.html">indonesian</a>,
            <a href="index.it.html">italiano</a>,
            <a href="index.nl.html">nederlands</a>,
            <a href="index.pl.html">polski</a>,
            <a href="index.pt_BR.html">português</a>,
            <a href="index.ru.html">русский</a>,
            <a href="index.tr.html">türkçe</a>,
            <br/>
					<a href="index.my.html">မြန်မာ</a>,
            <a href="index.ja.html">日本語</a>,
            <a href="index.zh.html">中文</a>,
            <a href="index.ko.html">한국어</a>
                        တို့ဖြင့် ဖတ်နိုင်သည်။
            <br />


            ဆွေးနွေးခြင်းနှင့် ပြင်ဆင်ရန် အချက်များ ကို <a href="https://github.com/rogerdudler/git-guide/issues">github</a> တွင် တင်ပေးပါ။
        </p>
        <img src="img/arrow.png" alt="" />
    </div>
    <!-- setup -->
    <a name="setup"></a>
    <div class="scrollblock block-setup">
        <h2>ပြင်ဆင်ခြင်း</h2>
        <p>
            <a href="http://git-scm.com/download/mac">OSX အတွက် git Download</a>
        </p>
        <p>
            <a href="http://msysgit.github.io/">Windows အတွက် git Download</a>
        </p>
        <p>
            <a href="http://book.git-scm.com/2_installing_git.html">Linux အတွက် git Download</a>
        </p>
    </div>
    <a name="create"></a>
    <div class="scrollblock block-create">
        <h2>repository အသစ် ဖန်တီးခြင်း</h2>
        <p>
        		directory အသစ် တစ်ခုတည်ဆောက်ပါ။ ပြီးလျှင် terminal မှာ အောက်ကလို ရိုက်ပါ။
        		<br />
            <code>git init</code><br />
            ဆိုပြီး git repository တစ်ခုကို စတင်ပါ။
        </p>
    </div>
    <a name="checkout"></a>
    <div class="scrollblock block-checkout">
        <h2>repository ကို checkout လုပ်ခြင်း</h2>
        <p>
        		copy အနေနဲ့ ပွားပြီးတော့ အလုပ်လုပ်မယ်ဆိုရင်တော့ အောက်က command ကို အသုံးပြုရပါတယ်။ <br/>
            <code>git clone /path/to/repository</code><br />
            တကယ်လို့ server နဲ့ အလုပ်လုပ်တာဆိုရင်တော့ အောက်ကလို အသုံးပြုရပါတယ်။ <br/>
            <code>git clone username@host:/path/to/repository</code>
        </p>
    </div>
    <a name="trees"></a>
    <div class="scrollblock block-trees">
        <h2>အလုပ်လုပ်ပုံ</h2>
        <p>
        သင့် local repository မှာ git က ထိန်းသိမ်းဆောက်ရွက်တဲ့ ဆင့်ပွား ၃ ခု ရှိပါတယ်။
        ပထမ တစ်ခုကတော့ <code>Working Directory</code> ပါ။
        သူကတော့ လက်ရှိ file တွေကို သိမ်းထားပေးပါတယ်။
        ဒုတိယ တစ်ခုကတော့ <code>Index</code> ပါ။
        သူကတော့ staging area ပါ။
        နောက်ဆုံးကတော့ <code>HEAD</code> ပါ။
        နောက်ဆုံး သင် commit လုပ်ထားတဲ့ နေရာကို ညွှန်ပြထားပါတယ်။

        </p>
        <img src="img/trees.png" alt="" />
    </div>
    <a name="add"></a>
    <div class="scrollblock block-add">
        <h2>add နှင့် commit</h2>
        <p>
        ပြင်ဆင်ထားတာများကို ထည့်သွင်းလိုလည်း အောက်ပါ အတိုင်း အသုံးပြုနိုင်သည်။ <br/>
            <code>git add &lt;filename&gt;</code><br />
            <code>git add *</code><br />
            ဒီ အဆင့်က ပထမ အဆင့်ပါ။ ပြောင်းလဲထားသည်များကို commit လုပ်လိုလျှင် <br/>
            <code>git commit -m "Commit message"</code><br />
            ပြင်ဆင်ထားသည်များကို <b>HEAD</b> တွင် မှတ်ထားပြီးသားဖြစ်သည်။ သို့သော် remote repository ပေါ်သို့ မရောက်သေးပါ။
        </p>
    </div>
    <a name="push"></a>
    <div class="scrollblock block-remote">
        <h2>pushing changes</h2>
        <p>
        	သင်ပြင်ဆင်ထားတာတွေက အခု သင့်ရဲ့ local working copy နေရာက <b>&lt;HEAD&gt;</b> မှာ ရောက်နေပါပြီ။ <br/>
        	ပြောင်းလဲထားတဲ့ code တွေကို remote repository ဆီပို့ဖို့ အတွက်
        	<br/>
            <code>git push origin master</code><br />
            <i>master</i> ကို သင့်ရဲ့ စိတ်ကြိုက် branch ပြောင်းနိုင်ပါတယ်။ သင် ပို့ချင်တဲ့ branch တစ်ခုခုကိုပေါ့။
            <br /><br />
            တကယ်လို့ သင်က cloned မလုပ်ချင်ဘူး။ လက်ရှိ ရှိထားတဲ့ code ကို remote server နဲ့ ချိတ်ဆက်ချင်တယ်ဆိုရင်တော့ <br/>
            <code>git remote add origin &lt;server&gt;</code><br />

            အခု သင်ရဲ့ code ကို သင်ရွေးချယ်ထားတဲ့  remote server ပေါ်တင်လို့ရပါပြီ။ <br/>

        </p>
    </div>
    <a name="branching"></a>
    <div class="scrollblock block-branching">
        <h2>branching</h2>
        <p>
        Branches တွေကို develop အဆင့်တွေမှာ အသုံးပြုပါတယ်။
        <i>master</i> branch ကတော့ repository အသစ်ဖန်တီးတဲ့အခါမှာ ပုံသေပါလာပါတယ်။
        တကယ်လို့ development အတွက် အြခား branches တွေခွဲထွက်ပြီး အကုန်ပြီးစီးမှသာ master branch နဲ့ ပြန်ပေါင်းပါတယ်။
        </p>
        <img src="img/branches.png" alt="" />
        <p>
        	"feature_x" ဆိုတဲ့ branch အသစ်ဆောက်ပြီး ထို branch ကို ပြောင်းလဲ အသုံးပြုပုံ<br/>
            <code>git checkout -b feature_x</code><br />

            master branch ကို ပြန်ပြောင်းပုံ <br/>
            <code>git checkout master</code><br />
            branch ကို ဖျက်ခြင်း<br />
            <code>git branch -d feature_x</code><br />

				branch ကို remote repository ကို push လုပ်လိုလျှင် <br/>

            <code>git push origin &lt;branch&gt;</code>
        </p>
    </div>
    <a name="update"></a>
    <div class="scrollblock block-merging">
        <h2>အသစ်ဆွဲချခြင်း နှင့် ပေါင်းစည်းခြင်း</h2>
        <p>

        		 local repository ကို remote repository တွင် အသစ် commit လုပ်ထားသည်များကို ဆွဲချလိုလျှင်<br/>
            <code>git pull</code><br />
            <i>pull</i> လို့ ခေါ်တဲ့အခါမှာ working directory ထဲသို့ နောက်ဆုံး ပြောင်းထားသည်များကို <i>fetch</i> နှင့် <i>merge</i> လုပ်သွားပါမယ်။<br/>

            လက်ရှိ အလုပ်လုပ်နေသော branch (ဥပမာ။။ master) ထဲကို အခြား branch မှ လာပေါင်းလိုလျှင် <br/>

            <code>git merge &lt;branch&gt;</code><br />

            ထိုအခါ git က အလိုအလျှောက် ပြင်ထားသည်များကို ပေါင်းပေးပါလိမ့်မယ်။
            သို့သော်လည်း အမြဲတန်း အဆင်မပြေပါ။ တစ်ခါတစ်လေ <i>conflicts</i> ဖြစ်တာလေးတွေ ရှိတတ်ပါတယ်။

					ထို အခါ <i>conflicts</i> ဖြစ်တာကို ကိုယ့်ဘာသာကိုယ် ပေါင်းဖို့ လုပ်ဆောင်ရပါတော့တယ်။

            <i>conflicts</i> ဖြစ်နေတဲ့ file များကို git တွင်ဖော်ထားပါတယ်။ ထို file များကို ကိုယ့်ဘာသာကိုယ် ပြင်ဆင်ပြီးရင် ပြန်ပြီးတော့ ထည့်ပေးဖို့ လိုပါတယ်။<br/>
            <code>git add &lt;filename&gt;</code><br />

            မပေါင်းခင်မှာ အရင်ဆုံး ပြောင်းထားတဲ့ code တွေကို ယှဉ်ကြည့်နိုင်ပါတယ်။<br/>
            <code>git diff &lt;source_branch&gt; &lt;target_branch&gt;</code>
        </p>
    </div>
    <a name="tagging"></a>
    <div class="scrollblock block-tagging">
        <h2>tagging</h2>
        <p>
    			software version တစ်ခုကို ထုတ်လိုက်တိုင်းမှာ tag ကို အသုံးပြု အကြံပြုပါတယ်။
    			ဒါသုံးခြင်းက SVN မှာ ပါပြီးသား အယူအဆ တစ်ခုပါ။
    			သင့်အနေနဲ့ tag နာမည် အသစ် <i>1.0.0</i> ဆိုပြီး ပေးနိုင်ပါတယ်။ <br/>
            <code>git tag 1.0.0 1b2e1d63ff</code><br />
             <i>1b2e1d63ff</i> ကတော့ သင် tag လုပ်ချင်တဲ့ commit id ရဲ့ ပထမ စာလုံး ၁၀ လုံး ပါ။
             သင့် အနေနဲ့ commit id ကို အောက်ကလို ရိုက်ပြီး ရယူနိုင်ပါတယ်။<br />
            <code>git log</code><br />
            သင့်အနေနဲ့ commit id ရဲ့ အခြားစာလုံး အနည်းငယ်ကို အသုံးပြုနိုင်ပါတယ်။ သို့ပေမယ့် အဲဒီ id ဟာ ဘယ်သူမှ အသုံးမပြုထားပဲ ကင်းရှင်းဖို့ သို့မဟုတ် unique ဖြစ်ဖို့ လိုပါတယ်။
        </p>
    </div>
    <a name="checkout-replace"></a>
    <div class="scrollblock block-checkout-replace">
        <h2>local ပြောင်းလဲခြင်းများကို အစားထိုးခြင်း</h2>
        <p>
        တကယ်လို့ တခုခုမှားသွားပြီး local ထဲက file နဲ့ ပြန် အစားထိုးချင်ရင် <br/>
            <code>git checkout -- &lt;filename&gt;</code><br />
            အခု ပြောင်းလဲလိုက်တာက သင့်ရဲ့ working tree ထဲက HEAD ထဲ က နောက်ဆုံး content မှာ သွားပြီးတော့ အစားထိုးသွားမှာပါ။ ပြောင်းထားတာတွေကိုတော့ index အနေနဲ့ ထည့်ပြီး files အသစ်တွေကိုလည်း သိမ်းထားပါလိမ့်မယ်။
        </p>
        <p>
            အကယ်၍ သင့်အနေနဲ့ local changes နှင့် commits တွေကို ဖျက်ချပြီး နောက်ဆုံး server နှင့် master branch က အကုန် ဆွဲယူပြီး အစားထိုးချင်ရင်<br/>
            <code>git fetch origin</code><br />
            <code>git reset --hard origin/master</code>
        </p>
    </div>
    <a name="hints"></a>
    <div class="scrollblock block-hints">
        <h2>အသုံးဝင်သော အရာများ</h2>
        <p>
            GUI ပါဝင်သော git <br />
            <code>gitk</code><br />
            အရောင်များဖြင့် git output<br />
            <code>git config color.ui true</code><br />
            commit များကို စာ တကြောင်းစီဖြင့် ကြည့်ရန်။<br />
            <code>git config format.pretty oneline</code><br />
            interactive adding ကို အသုံးပြုခြင်း<br />
            <code>git add -i</code>
        </p>
    </div>
    <a name="resources"></a>
    <div class="scrollblock block-resources">
        <h2>link နှင့် resources</h2>
        <h3>graphical clients</h3>
        <p>
            <ul>
                <li><a href="http://gitx.laullon.com/">GitX (L) (OSX, open source)</a></li>
                <li><a href="http://www.git-tower.com/">Tower (OSX)</a></li>
                <li><a href="http://www.sourcetreeapp.com/">Source Tree (OSX, free)</a></li>
                <li><a href="http://mac.github.com/">GitHub for Mac (OSX, free)</a></li>
                <li><a href="https://itunes.apple.com/gb/app/gitbox/id403388357?mt=12">GitBox (OSX)</a></li>
            </ul>
        </p>
        <h3>အသုံးပြုပုံ လမ်းညွှန်များ</h3>
        <p>
            <ul>
                <li><a href="http://book.git-scm.com/">Git Community Book</a></li>
                <li><a href="http://progit.org/book/">Pro Git</a></li>
                <li><a href="http://think-like-a-git.net/">Think like a git</a></li>
                <li><a href="http://help.github.com/">GitHub Help</a></li>
                <li><a href="http://marklodato.github.com/visual-git-guide/index-en.html">A Visual Git Guide</a></li>
            </ul>
        </p>
    </div>
    <div class="announcement">
        <a href="http://frontify.com/?utm_source=gitguide&amp;utm_campaign=founder">
            <img src="http://d13bhd1byokz0o.cloudfront.net/ad/clarify-announcement-git@2x.png" width="960" height="100" alt="Clarify" />
        </a>
    </div>
    <a name="comments"></a>
    <div class="scrollblock block-comments">
        <h2>မှတ်ချက်များ</h2>
        <div id="disqus_thread"></div>
        <script type="text/javascript">
            /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
            var disqus_shortname = 'git-the-simple-guide'; // required: replace example with your forum shortname

            /* * * DON'T EDIT BELOW THIS LINE * * */
            (function() {
                var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
                dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
                (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
            })();
        </script>
        <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    </div>
    <a href="http://www.git-tower.com/?source=rd" onClick="recordOutboundLink(this, 'Outbound Links', 'git-tower.com');return false;" class="tower"></a>
    <a href="files/git_cheat_sheet.pdf" onClick="recordOutboundLink(this, 'Cheat Sheet', 'git-guide');return false;" class="cheatsheet"></a>
</body>
</html>
